ConfigルールはSecurity Hubで見ると便利
こんにちは。たかやまです。
突然ですが、みなさんのConfigルールこんな感じになっていませんか?
Security Hubを利用している環境だとプレフィックスsecurityhub-
がついたサービスにリンクされた AWS Config ルール(SLR)が乱立しています。
これはSecurity Hubが利用するConfigルールでユーザ側から変更/削除することはできず、ユーザが作成したConfigルールがある場合非常に探しにくいです。
私の環境ではrestricted-common-ports
を展開していますが、Security Hubのルールに埋もれ3ページ目に表示されています。
検索すればいいのではと思ったそこのあなた。Configコンソールではルール名で検索することができません。。
一応フィルターは用意されていますが、フィルター条件は「すべて/準拠/非準拠」のみになります。
Secuirty Hubで見ると便利
ここでタイトル回収になりますが、Security HubはConfigと統合できConfigルールの検出結果はSecurity Hubで見ると便利です。
Security Hubと統合されるConfigルールは以下のメリットがあります。
securityhub-
がつくSLRは表示されない。- 細かいフィルター条件で検索できる。
実際に見ていただくとわかりやすいと思います。
Secuirty Hubの統合
-> AWS Config
-> 結果を参照
を選択します。
※Configの結果の受け入れをしていない場合は、受け入れをしてください。結果は有効にした後に生成された結果のみ受信します。
統合画面からジャンプするとConfig用のフィルターが入った状態で表示されます。
このフィルターではConfigルールの非準拠となったルールが表示されます。
このときSecurity HubのSLRは表示されないようになっています。
また、Security Hubのはタイトル
でConfigルールの名前をフィルターすることもでき、Configコンソールより柔軟にフィルタリングすることができます。
注意点
1. 非準拠リソースを削除したとき
非準拠リソースへコンプラインス対応する場合に、リソース自体を削除することがあると思います。
リソースを削除した場合は、Security Hub側の結果がNOT_AVAILABLE
として残ってしまいます。
こうなった場合は、ワークフローのステータスを解決済み
として登録してフィルターから外す対応をしてください。
2. Configルールを削除したとき
非準拠の結果がある状態でConfigルールを削除した場合もSecurity Hubに結果が残った状態になります。
Configルールがない状態で非準拠リソースを修正または削除した場合は、Security Hubには反映されないので、この場合もユーザ側でワークフローのステータスを適宜更新してください。
Configで見る場合
とはいえConfigの設定はConfigコンソールから行う必要があり、Configルール側でフィルタリングしたいニーズもあると思います。
力技ですがCLIを使うことでユーザが作成したConfigルールのみ表示することができます。
CreatedBy
でSecurity Hub以外が作成しているConfigルールを一覧しています。
aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ | while read region; do echo "##### config list in ${region}" rule_names=$(aws configservice describe-config-rules \ --query 'ConfigRules[?CreatedBy!=`securityhub.amazonaws.com`].[ConfigRuleName]' \ --output text --region ${region}) for rule_name in ${rule_names[@]} do echo "https://ap-northeast-1.console.aws.amazon.com/config/home?region=${region}#/rules/details?configRuleName=${rule_name}" done done
結果はURLで返すのでこちらのURLから対象のConfigルールのコンソールに直接ジャンプすることができます。
[cloudshell-user@ip-10-2-58-145 ~]$ aws ec2 describe-regions --query "Regions[].[RegionName]" --output text \ > | while read region; do > echo "##### config list in ${region}" > rule_names=$(aws configservice describe-config-rules \ > --query 'ConfigRules[?CreatedBy!=`securityhub.amazonaws.com`].[ConfigRuleName]' \ > --output text --region ${region}) > for rule_name in ${rule_names[@]} > do > echo "https://ap-northeast-1.console.aws.amazon.com/config/home?region=${region}#/rules/details?configRuleName=${rule_name}" > done > done ##### config list in ap-south-1 ##### config list in eu-north-1 ##### config list in eu-west-3 ##### config list in eu-west-2 ##### config list in eu-west-1 ##### config list in ap-northeast-3 ##### config list in ap-northeast-2 ##### config list in ap-northeast-1 https://ap-northeast-1.console.aws.amazon.com/config/home?region=ap-northeast-1#/rules/details?configRuleName=ec2-security-group-attached-to-eni-periodic https://ap-northeast-1.console.aws.amazon.com/config/home?region=ap-northeast-1#/rules/details?configRuleName=restricted-common-ports ##### config list in ca-central-1 ##### config list in sa-east-1 ##### config list in ap-southeast-1 ##### config list in ap-southeast-2 ##### config list in eu-central-1 ##### config list in us-east-1 ##### config list in us-east-2 ##### config list in us-west-1 ##### config list in us-west-2
最後に
Security Hubをデプロイしている環境では、Security HubのSLRでユーザ管理のConfigルールが埋もれてしまいますが、ご紹介したSecurity Hubの統合画面を使うことでConfigルールの視認性をよくすることができます。
今回はシングルアカウントでのご紹介でしたが、マルチアカウントでも同様にConfigルールの結果をSecurity Hubで管理することができます。
マルチアカウントではConfig Aggregatorが選択肢にあがると思いますが、AggregatorもSLRによって表示内容がカオスになるので、ぜひSecurity Hubの統合機能をご活用いただければと思います。
Configルールが見にくいとお悩みの方は、ぜひこちらの機能がお役に立てば幸いです。
以上、たかやま(@nyan_kotaroo)でした。